function sort(array) {
    //记录最后一次交换的位置
    let lastExchangeIndex = 0;
    //无序数列的边界，每次比较只需要比到这里为止
    let sortBorder = array.length - 1;
    for (let i = 0; i < array.length - 1; i++) {
        //有序标记，每一轮的初始值都是true
        let isSorted = true;
        for (let j = 0; j < sortBorder; j++) {
            let tmp = 0;
            if (array[j] > array[j + 1]) {
                tmp = array[j];
                array[j] = array[j + 1];
                array[j + 1] = tmp;
                //因为有元素交换，所有不是有序的，标记变为false
                isSorted = false;
                //更新为最后一次交换元素的位置
                lastExchangeIndex = j;
            }
        }
        sortBorder = lastExchangeIndex;
        if (isSorted) {
            break;
        }
    }
}
let array = [3, 4, 2, 1, 5, 6, 7, 8];
sort(array);
console.log(array);
